package br.unisal.repository;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import br.unisal.domain.Entregador;
import br.unisal.reader.LeitorXML;

public class EntregadorRepository {

	private List<Entregador> entregadores = new ArrayList<>();

	public EntregadorRepository() {
//		Entregador entregador1 = new Entregador("Cidao", "Silva", new CPF("22222222234"));
//		Entregador entregador2 = new Entregador("Mario", "Silvio", new CPF("12121212122"));
//		Entregador entregador3 = new Entregador("Andre", "Andrade", new CPF("34343434343"));
//		
//		entregadores.add(entregador1);
//		entregadores.add(entregador2);
//		entregadores.add(entregador3);
		
		this.entregadores = new LeitorXML().leEntregadores();
		
		this.ordenaEntregadores();
	}
	
	private void ordenaEntregadores(){
		    Collections.sort (this.entregadores, new Comparator<Entregador>() {  
			@Override
			public int compare(Entregador e1, Entregador e2) {

				return e1.getNome().compareToIgnoreCase(e2.getNome());
			}  
		    });  
	}
		
	public Entregador[] retornaEntregadoresEmArray(){
		this.ordenaEntregadores();
		Entregador[] array = entregadores.toArray(new Entregador[entregadores.size()]);
		return array;
	}

	public void adiconaEntregador(Entregador entregador) {
			entregadores.add(entregador);
	}
	
	public void excluiEntregador (Entregador entregador){
		entregadores.remove(entregador);
	}
	
	public List<Entregador> retornaListaEntregadores(){
		this.ordenaEntregadores();
		return this.entregadores;
	}
	
}